package swarm

import "time"

// Version 代表内部对象版本
// Version represents the internal object version
type Version struct {
	Index uint64 `json:",omitempty"`
}

// Meta 是大多数其他对象继承一次的基础对象。
// Meta is a base object inherited by most of the other once.
type Meta struct {
	Version   Version   `json:",omitempty"`
	CreatedAt time.Time `json:",omitempty"`
	UpdatedAt time.Time `json:",omitempty"`
}

// Annotations 注释表示如何描述对象。
// Annotations represents how to describe an object.
type Annotations struct {
	Name   string            `json:",omitempty"`
	Labels map[string]string `json:"Labels"`
}

// Driver 代表一个驱动程序（网络、日志、机密后端）。
// Driver represents a driver (network,logging,secrets backend).
type Driver struct {
	Name    string            `json:",omitempty"`
	Options map[string]string `json:",omitempty"`
}

// TLSInfo 表示有关受信任的CA证书以及TLS证书的颁发者是谁的TLS信息
type TLSInfo struct {
	// TrustRoot 是PEM格式的受信任CA根证书
	// TrustRoot is the trusted CA root certificate in PEM format
	TrustRoot string `json:",omitempty"`
	// CertIssuer is the raw subject bytes of the issuer
	CertIssuerSubject []byte `json:",omitempty"`
	// CertIssuerPublicKey is the raw public key bytes of the issuer
	CertIssuerPublicKey []byte `json:",omitempty"`
}
